封装:setter,getter;
String subject;
public String getSubject() { return subject; } public void setSubject(String subject) { this.subject = subject; }
继承:子类继承父类,用extends关键字;
public class SportsStudent extends Student implements CanDo
多态:抽象类,用abstract关键字;
public abstract class Student
instanceof是向上转型是否成功所用的关键字;
Student s1=new SportsStudent(); s1.setName("Tom"); s1.setAge(19); SportsStudent s=(SportsStudent) s1;
System.out.println(Student instanceof SportsStudent);//输出true
接口比抽象类还要抽象,用interface关键字。
public interface CanDo { String eat(); String drink(); }
继承接口后要重写接口中的方法,匿名内部类
CanDo c=new CanDo() { @Override public String eat() { return null; } }
可以用lambda表达式直接定义匿名类,但是有一个要求:接口中只能有一个方法
CanDo c=()->{ return null; };