JavaSE基础语法--傻瓜笔记--1023(第三章:面向对象3)
程序员文章站
2022-04-16 23:50:10
第三章:面向对象31.继承①继承:是面向对象程序设计中不可缺少的设计思想,是实现代码可重用的根本,是提高代码可扩充性属性的主要途径。关键字:extendsJava不支持多继承,只能有一个父类。继承是新的类吸收已有的类,并扩充新的能力。子类可以继承父类所有的非私有的属性和非私有的方法。但是如果不同包,那默认的也不行。c是b的子类(派生类),b是c的父类(基类)。传递性:c继承b,b继承a,那么c就拥有a和b的所有的非私有的属性和非私有的方法。Object:如果一个类没有继承任何一个类,那么...
第三章:面向对象3
1.继承
①继承
:是面向对象程序设计中不可缺少的设计思想,是实现代码可重用的根本,是提高代码可扩充性属性的主要途径。
关键字:extends
Java不支持多继承,只能有一个父类。
继承是新的类吸收已有的类,并扩充新的能力。
子类可以继承父类所有的非私有的属性和非私有的方法。但是如果不同包,那默认的也不行。
c是b的子类(派生类),b是c的父类(基类)。
传递性:c继承b,b继承a,那么c就拥有a和b的所有的非私有的属性和非私有的方法。
Object:如果一个类没有继承任何一个类,那么JVM就会默认给该类继承一个Object类。
注:如果c类创建一个对象,实际上就是创建了4个对象。
②为何要使用继承?
因为继承与真实世界类似,符合is-a关系的设计,使用继承。
③代码:
Animal类:
public class Animal extends Object {
private String name;
private int age;
public void eat(){
System.out.println("动物都会吃");
}
public Animal(){
}
public void setName(String name){
this.name = name;
}
public String getName(){
return this.name;
}
public void setAge(int age){
this.age = age;
}
public int getAge() {
return this.age;
}
}
Dog类:
public class Dog extends Animal {
public static void main(String[] args) {
Dog dog1 = new Dog();
dog1.setName("旺财");
System.out.println(dog1.getName());
dog1.setAge(4);
System.out.println(dog1.getAge());
dog1.eat();
Dog dog2 = new Dog();
dog2.setName("小黑");
System.out.println(dog2.getName());
dog2.setAge(3);
System.out.println(dog2.getAge());
dog2.eat();
}
public void fly(){
System.out.println("有的狗会飞");
}
}
Xiaotianquan类:
//继承的好处:代码可重用,提高代码可扩展性,新的类吸收已有的类,并扩展新的能力
//java是单继承,
//符合is-a关系的设计,使用继承
//继承传递 c继承b,b继承a,那么c会拥有b和a的全部的非私有的属性和私有的方法,不同包的时候,默认的也不行
//c是b的子类(派生类),b是c的父类(基类)
//如果一个类没有继承任何一个类,那么JVM会默认继承Object类;
//所以如果上面的c类创建了一个对象,那么实际上是创建了4个对象;
public class Xiaotianquan extends Dog {
public static void main(String[] args) {
Xiaotianquan x = new Xiaotianquan();
x.fly();
x.eat();
x.study();
}
public void study(){
System.out.println("会学习");
}
}
若有错误,欢迎私信指正。
本文地址:https://blog.csdn.net/weixin_44734518/article/details/109252285