No2_2.接口继承多态_Java学习笔记_继承

Posted sunshine-habit

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了No2_2.接口继承多态_Java学习笔记_继承相关的知识,希望对你有一定的参考价值。

***类的继承***
1.继承的实现extends
2.[修饰符] class 子类名 extends 父类名{}
3.修饰符一般为:public abstract final
4.重写是指父子类之间的关系,子类的方法名与父类的方法名相,那么子类就不能继承父类的方法,称子类的方法重写了父类的方法。
5.重写体现了子类补充或者改变父类方法的能力。通过重写,可以使一个方法在不同的子类中表现出不同的行为;
6.重写民可以称为覆盖;


***使用super关键字***
1.子类可以继承父类的非私有成员变量和成员方法(非private)作为自己的成员变量和方法;
2.如果子类与父类成员变量同名,子类不能继承父类的成员变量,称:子类的成员变量隐藏了父类的成员变量;
3.如2.换成方法,称:子类成员方法重写了父类的成员方法;
4.这时,想在子类中访问父类中被隐藏的成员方法或变量,就可以用super;
5.两种用途:
a.调用父类的构造方法;子类可以调用由父类声明的构造方法,必须使用super调用;【必须写在构造方法体中吗???是的】
super([参数列表]);
应该为构造函数中的第一条语句;

b.操作被隐藏的成员变量和被重写的成员方法;
super.成员变量名
super.成员方法名([参数列表])

问题:super. 可以不在构造方法中使用吗

  1 /**
  2  * @author: liu_y
  3  * @Date: 2016年7月3日
  4  * @Title:继承、继承中的重写
  5  */
  6 /**********继承的实现**************/
  7 class Bird{
  8     String color="white";
  9     String skin="羽毛";
 10 }
 11 class Pigeon extends Bird{
 12         public void pColor(){
 13             Pigeon p=new Pigeon();
 14             System.out.println("鸽子继承的鸟类的属性,颜色是:"+p.color);
 15     }
 16 }
 17 /**********继承中的重写**************/
 18 class Animal{
 19     public Animal(){        
 20     }
 21     public void cry(){
 22         System.out.println("动物发出叫声!");
 23     }
 24 }
 25 class Dog extends Animal{
 26     public Dog(){        
 27     }
 28     public void cry(){
 29         System.out.println("狗发出“汪汪汪”的叫声!");
 30     }    
 31 }
 32 class Cat extends Animal{
 33     public Cat(){        
 34     }
 35     public void cry(){
 36         System.out.println("罗小黑发出“喵喵喵”的叫声!");
 37     }    
 38 }
 39 class Sheep extends Animal{
 40     
 41 }
 42 /**********使用super关键字**************/
 43 class Beast{
 44     String skin;
 45     public int age;
 46     public Beast(){        
 47     }
 48     public Beast(String skin){
 49         this.skin=skin;
 50     }
 51     public void move(){
 52         System.out.println("跑");
 53     }
 54     public String getSkin(){
 55         return skin;
 56     }
 57 }
 58 class Tiger extends Beast{
 59     public Tiger(){
 60         super("条纹");            //使用父类的带参数的构造方法,必须写在构造方法体中吗???
 61         super.age=8;
 62         super.move();
 63     }
 64 
 65     public int getAge(){
 66         return super.age;
 67     }
 68     
 69     
 70 }
 71 
 72 public class Hello2Extends {
 73 
 74     public static void main(String[] args) {
 75         // TODO Auto-generated method stub
 76         //继承的实现
 77         System.out.println("继承的实现:");
 78         Pigeon p=new Pigeon();
 79         p.pColor();
 80 
 81         //继承中的重写
 82         System.out.println("\n继承中的重写");
 83         Dog dog=new Dog();
 84         Cat cat=new Cat();
 85         Sheep sheep=new Sheep();
 86         System.out.println("执行dog.cry()时的输出结果:");
 87         dog.cry();
 88         System.out.println("执行cat.cry()时的输出结果:");
 89         cat.cry();
 90         System.out.println("执行sheep.cry()时的输出结果:");
 91         sheep.cry();
 92         
 93         //使用super关键字
 94         System.out.println("\n使用super关键字");
 95         Tiger tiger=new Tiger();
 96         System.out.println("老虎的皮肤是:"+tiger.getSkin()+";年龄是:"+tiger.getAge());
 97 
 98     }
 99 
100 }

输出结果:

 1 继承的实现:
 2 鸽子继承的鸟类的属性,颜色是:white
 3 
 4 继承中的重写
 5 执行dog.cry()时的输出结果:
 6 狗发出“汪汪汪”的叫声!
 7 执行cat.cry()时的输出结果:
 8 罗小黑发出“喵喵喵”的叫声!
 9 执行sheep.cry()时的输出结果:
10 动物发出叫声!
11 
12 使用super关键字
13 14 老虎的皮肤是:条纹;年龄是:8

 

以上是关于No2_2.接口继承多态_Java学习笔记_继承的主要内容,如果未能解决你的问题,请参考以下文章

No2_3.接口继承多态_Java学习笔记_多态

Java_封装,继承和多态笔记

JAVA零基础小白学习教程之day08_接口&多态

JAVA零基础小白学习教程之day08_接口&多态

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第3节 接口_14_接口之间的多继承

阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第2节 抽象类_9_接口的私有方法定义