Java面向对象 继承,super,方法重写
/*
继承:表示父类跟子类之间的关系当两个类或者多个类具备相同的属性和方法的时候,可以提取出来,变成父类,子类可以继承子类跟父类是is-a的关系使用:1.使用继承的时候需要使用extend关键字2.使用继承关系之后,父类中的属性和方法都可以在子类中进行使用(非私有属性和非私有方法)3.java中是单继承关系(如果包含多个父类,同时父类中包含重名方法,无法决定该调用谁)super: 是直接父类 对象的引用用途:1.可以在子类中调用父类中被子类覆盖的方法 super.父类方法名称2.当super在普通方法中使用的话,可以任意位置编写3.当super在构造方法中使用的话,会调用父类的构造方法,一定要将super放在第一行4.在构造方法中super关键字和this关键字(指的是不能同时使用this关键字调用重载的构造方法)不能同时出现5.父类中私有的属性和方法都不能被调用,包括构造方法6.子类的构造方法中都会默认使用super关键字调用父类的无参构造方法,因此在定义类的时候,无论自己是否自定义了其他构造方法,最好将无参构造方法写上。7.如果构造方法中显示的指定了super的构造方法,那么无参的构造方法就不会被调用总结:1.在创建子类对象的时候一定会优先创建父类对象2.所有的java类都具备同一个老祖宗类,称为Object,是所有类的根类重写:(覆盖)@override必须要存在继承关系,当父类中的方法无法满足子类需求的时候可以选择使用重写的方式注意:1.重写表示的是子类覆盖父类的方法,当覆盖之后,调用同样的方法的时候会优先调用子类2.重写的方法名称,返回值类型,参数列表必须跟父类一致3.子类重写的方法不允许比父类的方法具备更小的访问权限父类 public 子类 public父类 protected 子类 public protected父类 default 子类 public protected default父类的静态方法子类可以进行调用,但是子类不可以重写*/
public class Dog extends Pet {// private String name;// private int age;// private String gender;private String sound;public Dog(){}public Dog(String name){super(name);}public Dog(String name, int age, String gender, String sound) {super(name,age,gender);//调用Pet中的构造器// this.name = name;// this.age = age;// this.gender = gender;this.sound = sound;}// public String getName() {// return name;// }// public void setName(String name) {// this.name = name;// }// public int getAge() {// return age;// }// public void setAge(int age) {// this.age = age;//}// public String getGender() {// return gender;// }// public void setGender(String gender) {// this.gender = gender;// }public String getSound() {return sound;}public void setSound(String sound) {this.sound = sound;}public void show(){// System.out.println("name:"+this.name +"age:"+this.age+"gander:"+this.gander+"sount:"+this.sound);System.out.println("name:"+this.getName()+"age:"+this.getAge()+"gender:"+this.getGender()+"sount:"+this.sound);}@Override//重写public void print(){System.out.println("Dog print .....");//super.print();}
}
public class Penguin {private String name;private int age;private String gender;private String color;public Penguin(){}public Penguin(String name, int age, String gender, String color) {this.name = name;this.age = age;this.gender = gender;this.color = color;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public void show(){System.out.println("name:"+this.name +"age:"+this.age+"gender:"+this.gender+"color:"+this.color);}
}
public class Pet {private String name;private int age;private String gender;public Pet(){super();//指向顶级父类Object// System.out.println("空参");}public Pet(String name ){this.name = name;}public Pet(String name, int age, String gender) {this.name = name;this.age = age;this.gender = gender;}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public void setAge(int age) {this.age = age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public void print(){System.out.println("Pet print......");}}
public class PetTest {public static void main(String[] args) {/* Dog dog = new Dog();dog.setName("白");dog.setAge(10);dog.setGender("雄性");dog.setSound("汪汪..");// dog.show();dog.print();*/Dog dog = new Dog("小白",10,"雄性","旺旺... ...");//dog.print();}
}
Java面向对象 继承,super,方法重写相关推荐
- Java面向对象之子类方法重写
重写的总结 需要有继承关系,子类重写父类 方法名必须相同,方法体可以不同 参数列表必须相同 静态方法是类的方法,非静态是对象的方法,只有非静态方法才能被重写 修饰符:范围可以扩大不能缩小 Public ...
- Java:继承之super关键字,继承之私有权限,继承之方法重写,继承之object类,继承之简单工厂模式
一.继承的概念及用法 继承背后的思想就是 基于已存在的类来构建新类 当从已存在类继承时,就重用了它的方法和属性,还可以添加新的方法和属性来定制新类以应对需求 ...
- Java 面向对象:super关键字的理解
Java 面向对象:super关键字的理解 一.Super关键字: 1. super调用父类的构造方法,必须在构造方法的第一个 2. super只能出现在子类的方法或构造方法中! 3. super和t ...
- python类方法继承_对python中类的继承与方法重写介绍
1.单继承 父类也叫基类 子类也叫派生类 如下所示,继承的关系: 继承的书写格式: class 子类(父类): 方法 实例: class Animal: def eat(self): print(&q ...
- Java面向对象之继承,方法重写,super关键字,员工类系列继承题
在程序中,如果想声明一个类继承另一个类,需要使用extends关键字. 格式: class 子类 extends 父类 {} 继承的好处 1.继承的出现提高了代码的复用性,提高软件开发效率. 2.继承 ...
- 【Java】day9--main方法、单例设计模式、继承、方法重写部分知识点总结
(一)main方法 jvm调用main方法,jvm也是一个程序 main方法详解: public:公共 保证该类在任何情况下,jvm都对其方法可见. stat ...
- JAVA练习5—继承,方法重写
什么是继承? 继承是从已有的类中派生出新类,新的类能吸收已有类的数据属性和方法,并能扩展新的能力. 继承是面向对象的三大特征之一.(三大特征:封装,继承,多态.) 继承的语法格式: 修饰符 class ...
- 27、Python 面向对象(创建类、创建实例对象、访问属性、内置类属性、对象销毁、类的继承、方法重写、基础重载方法、运算符重载、类属性与方法、下划线双下划线)
27Python面向对象(Python2) Python从设计之初就已经是一门面向对象的语言,正因为如此,在Python中创建一个类和对象是很容易的.本章节我们将详细介绍Python的面向对象编程. ...
- 12.面向对象(继承/super/接口/抽象类)
面向对象 继承与派生 继承 继承顺序 继承原理 子类调用父类的方法(super) 组合 接口 接口的概念: 接口的概念解释和使用: python中的接口: 抽象类 面向对象 继承与派生 继承 什么是继 ...
- java面向对象--继承与多态
1.1自定义包语法: package <包名> 注意:声明一个包的语句必须写在类中的第一行. 如:创建hero类,将该类存放到com.java.oriented.dato.figure包中 ...
最新文章
- yolo-v2 v3实现笔记 mAP:mean average precision 平均精度均值
- 将EntityManager.refresh添加到所有Spring数据存储库
- 情绪调节的自适应_如何做好情绪的管理者
- WORD 一回车就产生自动编号?
- [转载]我的WCF之旅(3):在WCF中实现双工通信
- GPU程序在GameByro中的使用
- MATLAB中的Hough变换
- KEIL MDK中 warning: #223-D: function “xxx“ declared implicitly 解决方法
- vba字典重复key_VBA字典数据重复次数
- app上架oppo应用商店流程
- 高德开放平台GeoHUB初用(Vue使用高德地图Loca 2.0)
- IKexpression解读二
- chrome浏览器替换code.jquery.com CDN的加速URL
- 透明这种颜色的html,透明颜色HTML5帆布
- 李兴华课程 java学习笔记
- 登录失败: 未知的用户名或错误密码。
- oneDrive 无法连接
- P R MAP简单理解,yolo中
- python中类与对象之间的关系_python类与类之间的关系
- 热门商务台式计算机,商务台式机也能如此优雅 ThinkCentre E95z体验