Java-继承之定义格式及注意事项
2018-01-30 14:49
274 查看
继承
继承定义多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中那么多个类无需再定义这些属性和行为,只要继承那个类即可。
就比说动物,狗是动物,猫是动物,大熊猫也是动物,他们都有名字,都有年龄,爱好等等,即就是,动物的属性和行为,小动物们都有。
继承的格式,
通过extends关键字可以实现类与类的继承 class 子类名 extends 父类名 {}
单独的这个类称为父类,基类或者超类;这多个类可以称为子类或者派生类。
继承不仅提高了代码的复用性,而且提高了代码的维护性,不用再去定义单独类,找到共性即可。
需要注意的是类和类之间的关系,是多态的前提
继承也有弊端:类的耦合性增强(耦合性是指类和类之间的关系)
在程序开发的过程中,要求高内聚,低耦合,类和类之间的关系如果太多,修改起来就意味着每一个都会修改。
//People类 public class People { public String name; public int age; private String interest; public void talk() { System.out.println("父类的非私有方法"); } private void show(){ System.out.println("父类的私有方法"); } } //学生类 public class Student extends People{ } //测试类 Student student = new Student(); student.age=20; student.name="周杰伦"; student.talk();//父类的非私有方法 //student.show(); 调不到 因为是父类私有的方法 System.out.println(student.age);//20 System.out.println(student.name);//周杰伦
继承仅支持单继承,不支持多继承
例如 class Student extends People,School,Person--这是不允许的。 但是Java支持多层继承,例如动物<-猫<-折耳猫 class Cat extends Animal class ZheErCat extends Cat
继承注意事项:
子类只能继承父类非私有的成员变量和成员方法。
子类不能继承父类的构造方法,但是可以通过super()去调用父类的构造方法。
Student student2 = new Student(); student2.interest;//报错,调不到 student2.show();//报错,也调不到 //这就说明了父类私有的东西子类无法继承
会遇见这样一种情况,子类中的成员变量和父类中的成员变量名称一样,遇见这种情况,系统会采用“就近原则”。
//动物父类 public class Animal { String name="父类名字"; } //狗 子类 public class Dog extends Animal{ String name="子类名字"; public void show(String tname){ System.out.println("方法中"); System.out.println(name); } } //测试类1 // a: 在子类的方法的局部范围找,有就使用 Dog dog = new Dog(); dog.show("菜花"); System.out.println(dog.name); /*答案:方法中 子类名字 子类名字*/ //如果狗这个子类变成如下情况: public class Dog extends Animal{ String name="子类名字"; } //测试类2 // b: 在子类的成员范围找,有就使用 Dog dog2 = new Dog(); System.out.println(dog2.name);//子类名字 //如果狗这个子类变成如下情况: public class Dog extends Animal{ } //测试类3 // c: 在父类的成员范围找,有就使用 Dog dog3 = new Dog(); System.out.println(dog3.name);//父类名字 // d:如果还找不到,就报错
相关文章推荐
- java基础:面向对象(继承中构造方法的注意事项)
- Java自学笔记(第十天)-异常-异常的处理-throws-throw-多异常处理-自定义异常-throwable类-RunTimeException类-finally-异常在方法继承中的注意事项-
- 深入Java基础(三)--集合(2)ArrayList和其继承树源码解析以及其注意事项
- Java常量定义需要注意事项及static作用(复习)
- java继承中覆盖时的注意事项,以及匿名类的使用
- Java语言中定义常量注意事项
- java继承中的几点注意事项
- Java 继承_注意事项
- 数据处理json格式以及java编写注意事项
- Java常量定义需要注意事项及static作用(复习)
- [转]java继承中的几点注意事项
- java继承中的几点注意事项
- Java之访问权限控制符以及结合继承体系引发的注意事项
- java中继承注意事项
- Java语言中定义常量注意事项
- java中Date的格式注意事项
- 2.java继承关系的注意事项
- Android(java)学习笔记118:类继承的注意事项
- java枚举创建,定义注意事项
- java中定义常量的方法、性能以及注意事项