继承
Posted changwe12
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了继承相关的知识,希望对你有一定的参考价值。
Java面向对象三大特征:封装性、继承性、多态性
继承是多态的前提,没有继承就没有多态
特点:共性抽取
1 public class Phone { 2 3 public void call() { 4 System.out.println("打电话"); 5 } 6 7 public void send() { 8 System.out.println("发短信"); 9 } 10 11 public void show() { 12 System.out.println("显示号码"); 13 } 14 15 } 16
新建Phone类
1 public class NewPhone extends Phone { 2 3 @Override 4 public void show() { 5 super.show(); 6 System.out.println("显示姓名"); 7 System.out.println("显示头像"); 8 } 9 10 }
新建NewPhone类
1 public class Demo01Phone { 2 3 public static void main(String[] args) { 4 Phone phone = new Phone(); 5 phone.call(); // 打电话 6 phone.send(); // 发短信 7 phone.show(); // 显示号码 8 System.out.println("============="); 9 10 NewPhone newPhone = new NewPhone(); 11 newPhone.call(); // 打电话 12 newPhone.send(); // 发短信 13 newPhone.show(); /*显示号码 14 显示姓名 15 显示头像 16 */ 17 } 18 19 }
说明:
- 继承的格式:
定义父类:
public class 父类名称() {…}
定义子类:
public class 子类名称 extends 父类名称() {…}
变量或方法的访问:
局部变量:getter/setter
本类的成员变量:this.变量/方法名称
父类的成员变量:super.变量/方法名称
- 覆写和重载的区别:
覆写(Override):方法名称一样,参数列表一样
重载(Overload):方法名称一样,参数列表不一样
- @Override写在方法前,用来检测是不是有效的正确方法覆写
例如:在NewPhone类的第三行代码使用@Override用来检测是否构成覆盖重写
- 返回值:
子类方法的返回值必须小于等于父类方法的返回值范围
另:java.lang.Object类是所有类的公共最高父类,java.lang.String就是Object的子类。
修饰符:
子类方法的权限必须大于等于父类方法的权限修饰符。
另:public > protected > (default) > private
(default)代表空白不写
以上是关于继承的主要内容,如果未能解决你的问题,请参考以下文章
26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段