2021-1-22
1.继承(extends)
定义父类的格式:
作用域修饰符 定义类的关键字 类名{
类体
}
public class 父类名称{
}
作用域修饰符主要有 public(公共的),private(私有的),protected(受保护的);定义类的关键字是class;类名由自己定义
定义子类的格式:
作用域修饰符 定义类的关键字 类名 继承的关键字 父类名 {
}
public class 子类名称 extends 父类名称 {
}
1.基于某个父类的的扩展,制定出一个新的子类,子类可以继承父类 原有的属性和方法,也可以增加父类所不具有的属性和方法,还可以重 写父类中的某些方法;特别要注意的是在继承关系中父类的构造方法会被调用,然后实例化子类对象
2.我们通过super方法显示他调用父类的构造方法并且必须写在第一行。
3.java中所有类的父类都是Object,Object类中的getclass(),notify(),notifyAll(),wait()等方法不能被重写,因为这些方法都被定义为final类型
4.java中没有多继承
5.继承的关键词是extends
2.继承的好处和弊端(特点)
3.继承中访问成员变量方法
4,this和super访问成员方法
5.方法重写
6.方法重写注意事项
7.继承中构造方法的访问特点
8.抽象类概述
抽象类案例
package com.wc.test;
/**
* @author wc
* @Date: 2021/01/22/14:37
*/
public abstract class Animal {
public void drink(){
System.out.println("喝水");
}
public abstract void eat();
}
package com.wc.test;
/**
* @author wc
* @Date: 2021/01/22/14:38
*/
public class Cat extends Animal {
@Override
public void eat() {
System.out.println("猫吃鱼");
}
}
package com.wc.test;
/**
* @author wc
* @Date: 2021/01/22/14:38
*/
public class Dog extends Animal {
@Override
public void eat() {
System.out.println("狗吃肉");
}
}
package com.wc.test;
/**
* @author wc
* @Date: 2021/01/22/14:37
*/
public class Test {
public static void main(String[] args) {
Dog dog=new Dog();
dog.eat();
dog.drink();
Cat cat=new Cat();
cat.eat();
cat.drink();
}
}
注意事项
9.final关键字
10.代码块
11.接口(interface )
接口的定义格式:
public interface 接口名称 {
}
接口的实现类定义方式:
作用域修饰符 定义类的关键字 类名 实现接口关键字 接口名 {
}
public class 实现类名称 implements 接口名称 {
}
1.定义接口的关键字是interface,接口中只有方法的定义没有方法的实现(方法的实现的意思是那对大括号,没有方法的实现的意思是没有那对大括号)
2.接口是抽象类的延伸,接口的所有方法都没有方法体。
3.java中没有多继承,但是可以实现多接口,这样间接完成了多继承。
4.定义接口的关键字是interface
5.注意:接口定义的方法必须是public或是abstrad形成,在接口中任何字段都自动是static和final的。
6.接口被用来实现接口的关键字是implemets,实现接口就必须实现接口的方法。
7.抽象类被类用来继承,接口被类用于实现
12.接口中成员特点
13.JDK8版本中接口成员的特点
14.JDK9版本中接口成员的特点